Schema Validation Rules তৈরি এবং প্রয়োগ

Java Technologies - জাভা মঙ্গোডিবি (Java MongoDB) - MongoDB তে Schema Validation
134

মঙ্গোডিবি (MongoDB) একটি NoSQL ডেটাবেস, যেখানে ডেটা রিলেশনাল ডেটাবেসের মতো একটি নির্দিষ্ট স্কিমার মধ্যে সংরক্ষিত হয় না। তবে অনেক সময় ডেটার গুণগত মান বজায় রাখার জন্য এবং অযাচিত ডেটার প্রবাহ রোধ করার জন্য স্কিমা ভ্যালিডেশন (Schema Validation) প্রয়োগ করা প্রয়োজন। জাভা মঙ্গোডিবি (Java MongoDB) ড্রাইভার ব্যবহার করে আপনি MongoDB ডেটাবেসে স্কিমা ভ্যালিডেশন রুলস তৈরি এবং প্রয়োগ করতে পারেন।


স্কিমা ভ্যালিডেশন রুলস (Schema Validation Rules) তৈরি

MongoDB 3.6 সংস্করণ থেকে স্কিমা ভ্যালিডেশন সাপোর্ট শুরু হয়েছে, যা আপনাকে ডেটা ইনসার্ট বা আপডেট করার আগে নির্দিষ্ট শর্তাবলী (validation rules) প্রয়োগ করতে সক্ষম করে। এটি ডেটাবেসের উপর নির্দিষ্ট নিয়ম চাপিয়ে নির্ধারিত ডেটা ফরম্যাটের বাইরে কোনও ইনপুট প্রবাহিত হওয়া রোধ করে।

স্কিমা ভ্যালিডেশন রুলস তৈরি

MongoDB ড্রাইভার ব্যবহার করে স্কিমা ভ্যালিডেশন রুলস তৈরি করতে, প্রথমে আপনাকে একটি validator তৈরির মাধ্যমে প্রাসঙ্গিক শর্তাবলী নির্ধারণ করতে হবে। উদাহরণস্বরূপ, একটি কোলেকশনে age ফিল্ডের মান ১৮ এর বেশি হতে হবে এবং name ফিল্ডটি অবশ্যই একটি স্ট্রিং হতে হবে।

স্কিমা ভ্যালিডেশন রুলস উদাহরণ

import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.ValidationOptions;
import com.mongodb.client.model.ValidationAction;
import com.mongodb.client.model.ValidationLevel;

MongoDatabase database = mongoClient.getDatabase("myDatabase");

// কোলেকশন তৈরি করার সময় স্কিমা ভ্যালিডেশন রুলস প্রয়োগ করা
MongoCollection<Document> collection = database.createCollection(
    "users", 
    new Document("validator", 
        new Document("$jsonSchema", 
            new Document("bsonType", "object")
                .append("properties", 
                    new Document("name", 
                        new Document("bsonType", "string")
                    )
                    .append("age", 
                        new Document("bsonType", "int")
                            .append("minimum", 18)
                    )
                )
        ))
    )
);

উপরের কোডে, আমরা একটি নতুন কোলেকশন তৈরি করেছি যেখানে name ফিল্ডটি স্ট্রিং হতে হবে এবং age ফিল্ডটি একটি পূর্ণসংখ্যা হতে হবে, যার সর্বনিম্ন মান ১৮।

ভ্যালিডেশন অপশন এবং সেটিংস

MongoDB স্কিমা ভ্যালিডেশন রুলস তৈরি করার সময়, আপনি কয়েকটি ভ্যালিডেশন অপশন কনফিগার করতে পারেন:

  • Validation Level (ভ্যালিডেশন লেভেল): এটি ডেটা ইনসার্ট বা আপডেট করার সময় কেমন ধরনের ভ্যালিডেশন প্রয়োগ হবে তা নির্ধারণ করে। দুটি মেইন অপশন:
    • Strict: সব ধরনের ডেটা ভ্যালিডেশন প্রয়োগ হবে।
    • Moderate: নতুন ডেটা ভ্যালিডেট করা হবে, কিন্তু পুরনো ডেটা মেনে নেওয়া হবে।
  • Validation Action (ভ্যালিডেশন অ্যাকশন): এটি নির্ধারণ করে, যদি ইনপুট ডেটা স্কিমা ভ্যালিডেশন অতিক্রম না করে, তখন কি করা হবে। দুটি অপশন:
    • Error: ভ্যালিডেশন ব্যর্থ হলে একটি এরর ফেরত দেয়।
    • Warn: ভ্যালিডেশন ব্যর্থ হলেও একটি সতর্কবার্তা প্রদর্শন করবে এবং ডেটা সংরক্ষণ করবে।
ValidationOptions validationOptions = new ValidationOptions()
    .validationLevel(ValidationLevel.STRICT)
    .validationAction(ValidationAction.ERROR);

collection = database.getCollection("users");
collection.withWriteConcern(WriteConcern.MAJORITY).withReadConcern(ReadConcern.MAJORITY);

স্কিমা ভ্যালিডেশন রুলস প্রয়োগ

স্কিমা ভ্যালিডেশন রুলস প্রয়োগ করার জন্য, MongoDB কোলেকশনে থাকা ডেটা যাচাই করা হয়। আপনি স্কিমা ভ্যালিডেশন প্রয়োগের পরে নতুন ডেটা ইনসার্ট বা আপডেট করার সময় ভুল বা অযাচিত ডেটা প্রবাহিত হওয়ার থেকে রক্ষা পাবেন।

ডেটা ইনসার্ট করার সময় ভ্যালিডেশন চেক

Document user = new Document("name", "Alice")
                        .append("age", 25);

try {
    collection.insertOne(user); // এখানে যদি age < 18 হয়, তবে এরর হবে
} catch (Exception e) {
    System.out.println("Validation Error: " + e.getMessage());
}

এখানে, যদি age ১৮ এর কম হয়, তাহলে MongoDB একটি ভ্যালিডেশন এরর তৈরি করবে এবং ডেটা ইনসার্ট হবে না।


সারাংশ

জাভা মঙ্গোডিবি (Java MongoDB) ব্যবহার করে আপনি MongoDB ডেটাবেসে স্কিমা ভ্যালিডেশন রুলস তৈরি ও প্রয়োগ করতে পারেন, যা ডেটার গুণগত মান নিশ্চিত করতে সাহায্য করে। স্কিমা ভ্যালিডেশন ডেটা ইনসার্ট বা আপডেটের আগে নির্দিষ্ট শর্তাবলী প্রয়োগ করতে সক্ষম, যেমন ফিল্ডের টাইপ বা মানের সীমা পরীক্ষা করা। এটি ডেটাবেসের তথ্যের সঠিকতা এবং নিরাপত্তা নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।


Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...